This invention relates to expert systems. An expert system is a computer programmed to exhibit human expert-like ability for solving problems and generally containing an external interface which interacts with an inference engine responsive to a rule base. The inference engine responds to data supplied by the external interface in accordance with rules set out in its rule base. Expert systems have been developed for a number of applications including giving medical advice, configuring computer or other electronic hardware, analyzing geological data, and warning of malfunctions in an industrial plant.
The external interface is a problem specific piece of computer software which receives input from an external interactive terminal or from measurement devices and outputs queries or commands to the external terminal or signals to operate actuators, alarms, displays, etc. The programming of such an interface is well known to those skilled in the art.
An inference engine is a computer program that uses a base of knowledge or rules to make inferences from input information until an appropriate response can be deduced. When additional information is needed to provide a final response, it requests the information through the external interface. It is usually possible to reproduce and use the same inference engine in a number of different expert system applications with no more than a slight modification.
The knowledge or rule base is a set of rules that govern the behavior of the inference engine and hence the entire system. Typically, each rule has the following structure:
IF &lt;Condition 1&gt; and &lt;Condition 2&gt; and . . . &lt;Condition M&gt;
THEN &lt;Action 1&gt; &lt;Action 2&gt;. . . &lt;Action N&gt;.
There may be several rules which produce the same set of actions.
Examples of conditions, from a fictional medical application used herein for descriptive purposes, include "high white cell count", "allergic to cacamycin", and "overweight". Examples of actions include "administer cacamycin" and "administer merdecillin". The interpretation of a rule is that if all of the conditions hold then all of the actions are executed. The actions are effectuated through the external interface. The responses may be as simple as driving the display or may involve triggering some actuator in the industrial plant such as opening a safety valve.
Some actions are also considered conditions for other rules. For example, the action "administer cacamycin" may correspond to a condition for a rule of the form IF &lt;administer cacamycin&gt; THEN &lt;Do Not administer merdecillin&gt;. This rule implies that it would not be prope to administer merdecillin if cacamycin is being administered. Such actions need not affect the external environment directly; their primary use may be as conditions for other rules.
In the prior art, rules are generally constructed for an expert system by either having a human expert provide the rules in a form suitable for the rule base or by having another person generally known as a knowledge engineer convert the information from an xpert into appropriate rules. It is often the case that a human expert in a particular area has difficulty formulating his or her knowledge as a set of rules. The process of generating and perfecting a set of rules has been universally recognized as the most time consuming, difficult, and expensive process involved in building an expert system. It is frequently difficult to reduce expertise to a set of rules.
Various approaches have been tried to ameliorate the problem of generating rules for a expert system. One approach is to create a "user friendly" interface to ease the human task of adding new rules as described in Buchanon, B. and Shortliffe, Rule-Based Expert Systems, Addison Wesley, 1984, Chapter 9. Another system which has been made available is contained within the software product "Expert-Ease" manufactured by Export Software International Limited. This product apparently takes training examples input into the system and builds a decision tree based on these examples using statistical methods. This tree can then be coupled with a decision tree controlled inference engine to produce an expert system.
A decision tree controlled expert system has the shortcoming of being overly sensitive to noisy data. The deviation in a variable's value may take the inference engine through a branch of the decision tree from which it cannot reach the correct answer unless the tree is made very large.
Moreover, there is no provision for insuring that data which is close to a training example will result in the training example's correct response.